home *** CD-ROM | disk | FTP | other *** search
Text File | 1980-02-15 | 28.9 KB | 1,367 lines |
- ; AGAIN AN ANGELS INTRO... EASYER TO USE...
- ;type...
- ;SEKA>ltext: <ENTER>
- ;SEKA> <ESC> to get into editor...
- ;EDIT THE TEXT...AND NOW... ASSEMBLE INCLUDE THE IMAGES AND ENJOY...
-
-
- >extern "df0:font",font,4352
- >extern "df0:angels",angels,4704
- >extern "df0:music",data,9412
- org $50000
- load $50000
- s:
- ;THX TO PICKEL & WERNER OF AFL FOR THIS REPLAY ROUTINE !!
- speed = 6 ; play speed
- h_sound = 0
- h_length = 4
- h_frequency = 6
- h_volume = 8
- s_attack_step = 0
- s_attack_delay = 1
- s_decay_step = 2
- s_decay_delay = 3
- s_sustain = 4
- s_release_step = 6
- s_release_delay = 7
- s_volume = 8
- s_vibrator_wait = 9
- s_vibrator_step = 10
- s_vibrator_length = 11
- s_bendrate = 12
- s_portamento = 13
- s_sample = 14
- s_table_delay = 15
- s_arpeggio = 16
- s_sound_length = 24
- s_repeat = 26
- s_repeat_length = 28
- s_table = 30
- s_sounddata = 78
- c_hardware = 0
- c_dma = 4
- c_sounddata = 6
- c_frequency = 10
- c_sound_table = 12
- c_sound_table_cnt = 16
- c_sound_table_del = 17
- c_track = 18
- c_track_cnt = 22
- c_block = 24
- c_block_cnt = 28
- c_vibrator_wait = 32
- c_vibrator_length = 33
- c_vibrator_pos = 34
- c_vibrator_cmp = 35
- c_vibrator_freq = 36
- c_old_frequency = 38
- c_frequency_data = 40
- c_actual_volume = 41
- c_attack_delay = 42
- c_decay_delay = 43
- c_sustain = 44
- c_release_delay = 46
- c_play_speed = 47
- c_bendrate_freq = 48
- c_transpose = 50
- c_status = 51
- c_arpeggio_cnt = 52
- c_arpeggio_data = 53
- c_arpeggio_on = 54
- c_effect_number = 55
- c_effect_data = 56
- start:
- movem.l d0-d7/a0-a6,-(a7)
- move.l 4,a6
- lea gfxname,a1
- jsr -408(a6)
- move.l d0,gfxbase
- jsr -132(a6)
- move.w #$03e0,$dff096
- lea $60000,a0
- loop1:
- move.l #0,(a0)+
- cmp.l #$7f000,a0
- bne loop1
-
- move.w #$87d0,$dff096
- move.l #$09f00000,$dff040
- move.l #$ffffffff,$dff044
- move.w #0,$dff064
- move.w #42,$dff066
- move.l #0,d5
- move.l #3,d7
- vertical:
- move.l #3,d6
- move.l #$60000,d2
- add.l d5,d2
- move.l #angels,d1
- horizontal:
- move.l d1,d3
- move.l d2,d4
- move.l #2,d0
- blitloop:
- move.l d3,$dff050
- move.l d4,$dff054
- move.w #$1c07,$dff058
- add.l #1568,d3
- add.l #25088,d4
- dbf d0,blitloop
- add.l #14,d2
- dbf d6,horizontal
- add.l #6272,d5
- dbf d7,vertical
- move.w #$03e0,$dff096
- bsr kies
- move.l #text,keeper
-
- lea lettercop,a0
- add.w #2,a0
- move.l #$72ffc,d0
- move.l #1,d3
- PlaneLoop3:
- swap d0
- move.w d0,(a0)
- add.w #4,a0
- swap d0
- move.w d0,(a0)
- add.w #4,a0
- add.l #8832,d0
- dbf d3,PlaneLoop3
-
- lea logopl,a0
- add.w #2,a0
- move.l #$60000,d0
- move.l #2,d3
- PlaneLoop:
- swap d0
- move.w d0,(a0)
- add.w #4,a0
- swap d0
- move.w d0,(a0)
- add.w #4,a0
- add.l #25088,d0
- dbf d3,PlaneLoop
-
- move.l #newcopper,$dff080
- clr.w $dff088
-
- move.l $6c,oldirq
- move.l #newirq,$6c
- bset #1,$bfe001 ; power on/off
-
- bsr DM_init
-
- move.w #$87e0,$dff096
- move.b #$87,$bfd100
- loop:
- ;move.w #$000f,$dff180
- cmp.w #1,uit
- beq end
- btst #6,$bfe001
- bne loop
- end:
- move.w #$f,$dff096 ; stop all sound
- bclr #1,$bfe001 ; power on
- move.l oldirq,$6C
- move.l gfxbase,a0
- move.l 38(a0),$dff080
- move.l 4,a6
- jsr -138(a6)
- move.l gfxbase,a1
- jsr -414(a6)
- movem.l (a7)+,d0-d7/a0-a6
- rts
-
- oldirq: dc.l 0
-
- newirq:
- movem.l d0-d6/a0-a6,-(a7)
- bsr DM_play
- bsr scrollback
- goone:
- cmp.l #0,klaar
- bne back
- move.l verander,d0
- move.l d0,klaar
- ReturnScroll:
- clr.l d2
- move.l keeppos,a0
- move.w keepcount,d0
- add.w #2,keepcount
- add.w d0,a0
- move.w (a0),d2
- move.l keeper,d1
- move.l d1,keeper2
- add.l d2,keeper2
- move.l keeper2,a0
- move.b (a0),d4
-
- lea letters,a1
- lea adds,a2
- move.l #69,d6
- sub.l d5,d5
- move.w (a2)+,d5
- search:
- cmp.b (a1)+,d4
- beq place
- move.w (a2)+,d5
- sub.l #1,d6
- cmp.l #0,d6
- beq notfound
- bra search
- notfound:
- cmp.b #$FF,d4
- BNE.S back
- move.l #text,keeper
- move.w #0,keepcount
- move.w #0,sprcount
- BRA ReturnScroll
- back:
- sub.l #1,klaar
- sub.b #1,lamer
- cmp.b #0,lamer
- bne goone
- move.b #3,lamer
- backk:
- move.w #$70,$dff09c
- movem.l (a7)+,d0-d6/a0-a6
- rte
-
- kies:
- move.l #7,d7
- MOVEM.L D1-D2,-(A7)
- MOVE.W $DFF006,D2
- MOVE.L RND,D1
- SWAP D1
- EOR.W D2,D1
- MOVE.W D7,D2
- SUBQ.W #1,D2
- RANDOM2:
- ADD.L D1,D1
- BHI.S RANDOM3
- EOR.L #$1D872B41,D1
- RANDOM3:
- LSR.W #1,D2
- BNE.S RANDOM2
- MOVE.L D1,RND
- MULU D7,D1
- CLR.W D1
- SWAP D1
- MOVE.L D1,D7
- MOVEM.L (A7)+,D1-D2
- mulu #360,d7
- move.l #plaats,keeppos
- add.l d7,keeppos
- rts
-
- RND:DC.L "RAND"
-
- place:
- move.l keeppos,a0
- lea addspr,a2
- cmp.w #358,sprcount
- bne gospr1
- move.w #0,keepcount
- add.l #180,keeper
- move.l d1,keeper2
- move.l #2048,klaar
- bsr kies
- gospr1:
- cmp.w #360,sprcount
- bne gospr
- move.w #0,sprcount
- gospr:
- move.w sprcount,d0
- add.w d0,a0
- add.w #2,sprcount
- move.w (a0),d4
- mulu #2,d4
- add.w d4,a2
- move.w (a2),d4
- move.l #$09f00000,$dff040
- move.l #$ffffffff,$dff044
-
- move.l #font,d1
- move.l #$73000,d2
- move.w #32,$dff064
- move.w #44,$dff066
- add.l d5,d1
- add.l d4,d2
- move.l #1,d7
- sprloop:
- move.l d1,$dff050
- move.l d2,$dff054
- move.w #$401,$dff058
- add.l #2176,d1
- add.l #8832,d2
- dbf d7,sprloop
- bra back
-
- scrollback:
- clr.l d0
- clr.l d1
- clr.l d2
- clr.l d5
- cmp.b #112,scrollcounter
- bne goscroll
- move.b #0,scrollcounter
- goscroll:
- move.b scrollcounter,d0
- add.b #1,scrollcounter
- lea scrolladds,a0
- add.w d0,a0
- move.b (a0),d5 ;KEEP THE ADDS FOR THE VERTICAL SCROLL
- lea scrollsubs,a0
- add.w d0,a0
- move.b (a0),d0
- divu #16,d0
- swap d0
- move.w #15,d1
- lea shifter,a0
- add.w #2,a0
- sub.w d0,d1
- move.w d1,(a0) ;SHIFTER COPIED TO COPPERLIST
- mulu #56,d5 ;MULU HEIGHT
- move.l #$60000,d6
- add.l d5,d6
- swap d0
- mulu #2,d0
- add.w d0,d6 ;RIGHT BITPLANE POINTET FOUND FOR NOW!!!
- lea logopl,a0
- add.w #2,a0
- move.l #2,d7
- bitloop:
- swap d6
- move.w d6,(a0)
- add.w #4,a0
- swap d6
- move.w d6,(a0)
- add.w #4,a0
- add.l #25088,d6
- dbf d7,bitloop
- rts
- ;************************
- DM_play:
- movem.l d0-d7/a0-a6,-(a7)
- lea channel1(pc),a6
- bsr.L DM_calc_frequency
- lea channel2(pc),a6
- bsr.L DM_calc_frequency
- lea channel3(pc),a6
- bsr.L DM_calc_frequency
- lea channel4(pc),a6
- bsr.L DM_calc_frequency
-
- move.w #$800f,$dff096
- DM_sample_handler:
- move.w #200,d0
- DM_swait:
- dbra d0,DM_swait
-
- lea channel1(pc),a6
- move.l c_hardware(a6),a4
- move.l c_sounddata(a6),a5
- tst.b s_sample(a5)
- beq.s DM_no_sample1
- move.w s_repeat_length(a5),h_length(a4)
- moveq #0,d7
- move.w s_repeat(a5),d7
- add.l a5,d7
- add.l #s_table,d7
- move.l d7,h_sound(a4)
- DM_no_sample1:
-
- lea channel2(pc),a6
- move.l c_hardware(a6),a4
- move.l c_sounddata(a6),a5
- tst.b s_sample(a5)
- beq.s DM_no_sample2
- move.w s_repeat_length(a5),h_length(a4)
- moveq #0,d7
- move.w s_repeat(a5),d7
- add.l a5,d7
- add.l #s_table,d7
- move.l d7,h_sound(a4)
- DM_no_sample2:
-
- lea channel3(pc),a6
- move.l c_hardware(a6),a4
- move.l c_sounddata(a6),a5
- tst.b s_sample(a5)
- beq.s DM_no_sample3
- move.w s_repeat_length(a5),h_length(a4)
- moveq #0,d7
- move.w s_repeat(a5),d7
- add.l a5,d7
- add.l #s_table,d7
- move.l d7,h_sound(a4)
- DM_no_sample3:
-
- lea channel4(pc),a6
- move.l c_hardware(a6),a4
- move.l c_sounddata(a6),a5
- tst.b s_sample(a5)
- beq.s DM_no_sample4
- move.w s_repeat_length(a5),h_length(a4)
- moveq #0,d7
- move.w s_repeat(a5),d7
- add.l a5,d7
- add.l #s_table,d7
- move.l d7,h_sound(a4)
- DM_no_sample4:
- movem.l (a7)+,d0-d7/a0-a6
- rts
-
-
- DM_calc_frequency:
- move.l c_hardware(a6),a4
- move.l c_sounddata(a6),a5
-
- subq.b #1,c_play_speed(a6)
- bne.L DM_block_con
- move.b play_speed,c_play_speed(a6)
-
- tst.l c_block_cnt(a6)
- bne.s DM_check_block
- DM_track_step:
- move.l c_track(a6),a0
- move.w c_track_cnt(a6),d7
- move.w (a0,d7.w),d0
- cmp.w #-1,d0
- bne.s DM_track_con
- move.w 2(a0,d7.w),d0
- and.w #$7ff,d0
- asl.w #1,d0
- move.w d0,c_track_cnt(a6)
- bra.s DM_track_step
- DM_track_con:
- move.b d0,c_transpose(a6)
- asr.l #2,d0
- and.l #%00000000000000000011111111000000,d0
- add.l blocks(pc),d0
- move.l d0,c_block(a6)
- addq.w #2,c_track_cnt(a6)
-
- DM_check_block:
- move.l c_block(a6),a0
- add.l c_block_cnt(a6),a0
-
- tst.b 2(a0)
- beq.s DM_no_new_effect
- move.b 2(a0),c_effect_number(a6)
- move.b 3(a0),c_effect_data(a6)
-
- DM_no_new_effect:
- moveq #0,d0
- move.b 1(a0),d0
- beq.L DM_test_effect
- add.b c_transpose(a6),d0
- move.b d0,c_frequency_data(a6)
-
- move.w c_dma(a6),d0
- sub.w #$8000,d0
- move.w d0,$dff096
-
- moveq #0,d0
- move.b d0,c_status(a6)
- move.w d0,c_bendrate_freq(a6)
- move.w d0,c_arpeggio_cnt(a6)
- move.b d0,c_arpeggio_on(a6)
-
- move.b 2(a0),c_effect_number(a6)
- move.b 3(a0),c_effect_data(a6)
-
- lea snd_table(pc),a1
- move.b (a0),d0
- asl.l #2,d0
- move.l (a1,d0.l),d0
- move.l d0,c_sounddata(a6)
-
- move.l d0,a5
- add.l #s_table,d0
- move.l d0,c_sound_table(a6)
- clr.b c_sound_table_cnt(a6)
- tst.b s_sample(a5)
- beq.s DM_no_sample_clear
- clr.w s_table(a5)
- move.l d0,h_sound(a4)
- DM_no_sample_clear:
-
- move.w s_sound_length(a5),d0
- asr.w #1,d0
- move.w d0,h_length(a4)
-
- move.b s_vibrator_wait(a5),c_vibrator_wait(a6)
- move.b s_vibrator_length(a5),d0
- move.b d0,c_vibrator_length(a6)
- move.b d0,c_vibrator_pos(a6)
- asl.b #1,d0
- move.b d0,c_vibrator_cmp(a6)
- clr.b c_actual_volume(a6)
- clr.b c_sound_table_del(a6)
- clr.b c_sound_table_cnt(a6)
- clr.b c_attack_delay(a6)
- clr.b c_decay_delay(a6)
- move.w s_sustain(a5),c_sustain(a6)
- clr.b c_release_delay(a6)
-
- DM_test_effect:
- addq.l #4,c_block_cnt(a6)
- cmp.l #64,c_block_cnt(a6)
- bne.s DM_block_con
- clr.l c_block_cnt(a6)
- DM_block_con:
-
- tst.b s_sample(a5)
- bne.s DM_portamento_handler
- tst.b c_sound_table_del(a6)
- beq.s DM_sound_table_handler
- subq.b #1,c_sound_table_del(a6)
- bra.s DM_portamento_handler
-
- DM_sound_table_handler:
- move.b s_table_delay(a5),c_sound_table_del(a6)
-
- DM_sound_read_again:
- move.l c_sound_table(a6),a0
- moveq #0,d6
- move.b c_sound_table_cnt(a6),d6
- cmp.b #48,d6
- bmi.s DM_sound_read_c
- clr.b c_sound_table_cnt(a6)
- moveq #0,d6
- DM_sound_read_c:
- add.l d6,a0
- moveq #0,d7
- move.b (a0),d7
-
- bpl.s DM_new_sounddata
- cmp.b #$ff,d7
- bne.s DM_sound_new_speed
- move.b 1(a0),d7
- move.b d7,c_sound_table_cnt(a6)
- bra.s DM_sound_read_again
- DM_sound_new_speed:
- and.b #127,d7
- move.b d7,s_table_delay(a5)
- addq.b #1,c_sound_table_cnt(a6)
- bra.s DM_sound_read_again
-
- DM_new_sounddata:
- asl.l #5,d7
- add.l #s_sounddata,d7
- add.l c_sounddata(a6),d7
- move.l d7,h_sound(a4) ; Set hardware sound data
- addq.b #1,c_sound_table_cnt(a6)
-
- DM_portamento_handler:
- tst.b s_portamento(a5)
- beq.s DM_vibrator_handler
- move.w c_frequency(a6),d1
- bne.s DM_porta_con
- moveq #0,d0
- lea freq_table(pc),a1
- move.b c_frequency_data(a6),d0
- asl.w #1,d0
- move.w (a1,d0.w),d0
- add.w c_bendrate_freq(a6),d0
- move.w d0,c_frequency(a6)
- bra.s DM_vibrator_handler
-
- DM_porta_con:
- moveq #0,d0
- moveq #0,d2
- move.b s_portamento(a5),d2
- lea freq_table(pc),a1
- move.b c_frequency_data(a6),d0
- asl.w #1,d0
- move.w (a1,d0.w),d0
- add.w c_bendrate_freq(a6),d0
- cmp.w d0,d1
- beq.s DM_vibrator_handler
- blo.s DM_porta_low
- sub.w d2,d1
- cmp.w d0,d1
- bpl.s DM_porta_high_con
- move.w d0,c_frequency(a6)
- bra.s DM_vibrator_handler
- DM_porta_high_con:
- move.w d1,c_frequency(a6)
- bra.s DM_vibrator_handler
- DM_porta_low:
- add.w d2,d1
- cmp.w d0,d1
- bmi.s DM_porta_low_con
- move.w d0,c_frequency(a6)
- bra.s DM_vibrator_handler
- DM_porta_low_con:
- move.w d1,c_frequency(a6)
-
-
- DM_vibrator_handler:
- tst.b c_vibrator_wait(a6)
- beq.s DM_calc_vibrator
- subq.b #1,c_vibrator_wait(a6)
- bra.s DM_bendrate_handler
- DM_calc_vibrator:
- moveq #0,d0
- moveq #0,d1
- move.b c_vibrator_pos(a6),d0
- move.b d0,d2
- move.b s_vibrator_step(a5),d1
- mulu d1,d0
- move.w d0,c_vibrator_freq(a6)
-
- btst #0,c_status(a6)
- bne.s DM_vibrator_minus
- DM_vibrator_plus:
- addq.b #1,d2
- cmp.b c_vibrator_cmp(a6),d2
- bne.s DM_vibrator_no_reset
- eor.b #1,c_status(a6)
- DM_vibrator_no_reset:
- move.b d2,c_vibrator_pos(a6)
- bra.s DM_bendrate_handler
-
- DM_vibrator_minus:
- subq.b #1,d2
- bne.s DM_vibrator_no_reset2
- eor.b #1,c_status(a6)
- DM_vibrator_no_reset2:
- move.b d2,c_vibrator_pos(a6)
-
- DM_bendrate_handler:
- moveq #0,d0
- move.l c_sounddata(a6),a1
- move.b s_bendrate(a1),d0
- bpl.s DM_rate_minus
- neg.b d0
-
- add.w d0,c_bendrate_freq(a6)
- bra.s DM_effect_handler
-
- DM_rate_minus:
- sub.w d0,c_bendrate_freq(a6)
-
- DM_effect_handler:
- moveq #0,d0
- moveq #0,d1
- move.b c_effect_data(a6),d0
- move.b c_effect_number(a6),d1
- lea effect_table(pc),a1
- and.b #$1f,d1
- asl.l #2,d1
- move.l (a1,d1.w),a1
- jsr (a1)
-
- DM_arpeggio_handler:
- move.l a5,a1
- add.l #s_arpeggio,a1
- move.b c_arpeggio_cnt(a6),d0
- move.b (a1,d0),d1
- addq.b #1,c_arpeggio_cnt(a6)
- and.b #%00000111,c_arpeggio_cnt(a6)
-
- DM_store_frequency:
- moveq #0,d0
- lea freq_table(pc),a1
- move.b c_frequency_data(a6),d0
- add.b d1,d0
- asl.w #1,d0
- move.w (a1,d0.w),d0
-
- moveq #0,d1
- moveq #0,d2
- move.b c_vibrator_length(a6),d1
- move.b s_vibrator_step(a5),d2
- mulu d2,d1
- sub.w d1,d0
- add.w c_bendrate_freq(a6),d0
- tst.b s_portamento(a5)
- beq.s DM_store_no_port
- move.w c_frequency(a6),d0
- bra.s DM_store_port
- DM_store_no_port:
- clr.w c_frequency(a6)
- DM_store_port:
- add.w c_vibrator_freq(a6),d0
- move.w d0,h_frequency(a4)
-
- DM_volume_handler:
- moveq #0,d1 ; actual volume
- move.b c_actual_volume(a6),d1
-
- move.b c_status(a6),d0
- and.b #%00001110,d0
-
- tst.b d0
- bne.s DM_test_decay
-
- tst.b c_attack_delay(a6)
- beq.s DM_attack_handler
- subq.b #1,c_attack_delay(a6)
- bra.L DM_volume_exit
- DM_attack_handler:
- move.b s_attack_delay(a5),c_attack_delay(a6)
- add.b s_attack_step(a5),d1
- cmp.b #64,d1
- blo.s DM_attack_con
- or.b #%00000010,d0
- or.b #%00000010,c_status(a6)
- moveq.b #64,d1
- DM_attack_con:
-
-
- DM_test_decay:
- cmp.b #%00000010,d0
- bne.s DM_test_sustain
-
- tst.b c_decay_delay(a6)
- beq.s DM_decay_handler
- subq.b #1,c_decay_delay(a6)
- bra.s DM_volume_exit
- DM_decay_handler:
- move.b s_decay_delay(a5),c_decay_delay(a6)
- move.b s_volume(a5),d2
- sub.b s_decay_step(a5),d1
- cmp.b d2,d1
- bhi.s DM_decay_con
- move.b s_volume(a5),d1
- or.b #%00000110,d0
- or.b #%00000110,c_status(a6)
- DM_decay_con:
-
- DM_test_sustain:
- cmp.b #%00000110,d0
- bne.s DM_test_release
-
- tst.w c_sustain(a6)
- beq.s DM_sustain_handler
- subq.w #1,c_sustain(a6)
- bra.s DM_volume_exit
- DM_sustain_handler:
- or.b #%00001110,d0
- or.b #%00001110,c_status(a6)
-
- DM_test_release:
- cmp.b #%00001110,d0
- bne.s DM_volume_exit
-
- tst.b c_release_delay(a6)
- beq.s DM_release_handler
- subq.b #1,c_release_delay(a6)
- bra.s DM_volume_exit
- DM_release_handler:
- move.b s_release_delay(a5),c_release_delay(a6)
- sub.b s_release_step(a5),d1
- bpl.s DM_release_con
- and.b #%00001001,c_status(a6)
- moveq #0,d1
- DM_release_con:
-
- DM_volume_exit:
- move.b d1,c_actual_volume(a6)
-
- move.w d1,h_volume(a4)
- rts
-
-
- ; ---- INIT MUSIC ----
-
- all_check = 0
- trk1 = 4
-
-
- DM_init:
- lea track1(pc),a1
- moveq #24,d7
- DM_init_loop:
- move.l #data+[26*4],(a1)+
- dbra d7,DM_init_loop
-
- moveq #23,d6
- lea track1+[24*4](pc),a1
- DM_init_loop2:
- lea data+4(pc),a0
- move.l d6,d7
- DM_init_loop3:
- move.l (a0)+,d0
- add.l d0,(a1)
- dbra d7,DM_init_loop3
- subq.l #4,a1
- dbra d6,DM_init_loop2
-
- lea $dff0a0,a0
- lea channel1(pc),a6
- bsr.s DM_setup
- add.l #16,a0
- lea channel2(pc),a6
- bsr.s DM_setup
- add.l #16,a0
- lea channel3(pc),a6
- bsr.s DM_setup
- add.l #16,a0
- lea channel4(pc),a6
- bsr.s DM_setup
- move.w #$8001,channel1+c_dma
- move.w #$8002,channel2+c_dma
- move.w #$8004,channel3+c_dma
- move.w #$8008,channel4+c_dma
- move.l track1(pc),channel1+c_track
- move.l track2(pc),channel2+c_track
- move.l track3(pc),channel3+c_track
- move.l track4(pc),channel4+c_track
- rts
-
- DM_setup:
- move.l a0,c_hardware(a6)
- move.w #16,h_length(a0)
- clr.w h_volume(a0)
- move.l #safe_zero,c_sounddata(a6)
- clr.w c_frequency(a6)
- move.l snd_table(pc),d0
- add.l #16,d0
- move.l d0,c_sound_table(a6)
- clr.w c_sound_table_cnt(a6)
- clr.w c_track_cnt(a6)
- move.l blocks(pc),c_block(a6)
- clr.l c_block_cnt(a6)
- clr.l c_vibrator_wait(a6)
- clr.l c_vibrator_freq(a6)
- clr.l c_frequency_data(a6)
- move.l #1,c_sustain(a6)
- clr.l c_bendrate_freq(a6)
- clr.l c_arpeggio_cnt(a6)
- clr.w c_effect_data(a6)
- rts
-
- ; ---- EFFECT ROUTINES ----
-
- eff0:
- rts
- eff1:
- and.b #15,d0 ; set play speed
- beq.s eff1_exit
- move.b d0,play_speed
- eff1_exit:
- rts
- eff2:
- sub.w d0,c_bendrate_freq(a6) ; slide freq up
- rts
- eff3:
- add.w d0,c_bendrate_freq(a6) ; slide freq down
- rts
- eff4:
- tst.b d0
- beq led_off
- bset #1,$bfe001 ; led on/off
- rts
- led_off:
- bclr #1,$bfe001
- rts
- eff5:
- move.b d0,s_vibrator_wait(a5) ; set vibrator wait
- rts
- eff6:
- move.b d0,s_vibrator_step(a5) ; set vibrator step
- rts
- eff7:
- move.b d0,s_vibrator_length(a5); set vibrator length
- rts
- eff8:
- move.b d0,s_bendrate(a5) ; set bendrate
- rts
- eff9:
- move.b d0,s_portamento(a5) ; set portamento
- rts
- effA:
- cmp.b #65,d0
- bmi.s effA_con
- moveq.b #64,d0
- effA_con:
- move.b d0,s_volume(a5) ; set volume
- rts
- effB:
- move.b d0,s_arpeggio(a5) ; set arp 1
- rts
- effC:
- move.b d0,s_arpeggio+1(a5) ; set arp 2
- rts
- effD:
- move.b d0,s_arpeggio+2(a5) ; set arp 3
- rts
- effE:
- move.b d0,s_arpeggio+3(a5) ; set arp 4
- rts
- effF:
- move.b d0,s_arpeggio+4(a5) ; set arp 5
- rts
- eff10:
- move.b d0,s_arpeggio+5(a5) ; set arp 6
- rts
- eff11:
- move.b d0,s_arpeggio+6(a5) ; set arp 7
- rts
- eff12:
- move.b d0,s_arpeggio+7(a5) ; set arp 8
- rts
- eff13:
- move.b d0,s_arpeggio(a5) ; set arp 1 / 5
- move.b d0,s_arpeggio+4(a5)
- rts
- eff14:
- move.b d0,s_arpeggio+1(a5) ; set arp 2 / 6
- move.b d0,s_arpeggio+5(a5)
- rts
- eff15:
- move.b d0,s_arpeggio+2(a5) ; set arp 3 / 7
- move.b d0,s_arpeggio+6(a5)
- rts
- eff16:
- move.b d0,s_arpeggio+3(a5) ; set arp 4 / 8
- move.b d0,s_arpeggio+7(a5)
- rts
- eff17:
- cmp.b #65,d0 ; set attack step
- bmi.s eff17_con
- moveq.b #64,d0
- eff17_con:
- move.b d0,s_attack_step(a5)
- rts
- eff18:
- move.b d0,s_attack_delay(a5) ; set attack delay
- rts
- eff19:
- cmp.b #65,d0 ; set decay step
- bmi.s eff19_con
- moveq.b #64,d0
- eff19_con:
- move.b d0,s_decay_step(a5)
- rts
- eff1A:
- move.b d0,s_decay_delay(a5) ; set decay delay
- rts
- eff1B:
- move.b d0,s_sustain(a5) ; set sustain byte 1
- rts
- eff1C:
- move.b d0,s_sustain+1(a5) ; set sustain byte 2
- rts
- eff1D:
- cmp.b #65,d0 ; set release step
- bmi.s eff1D_con
- move.b #64,d0
- eff1D_con:
- move.b d0,s_release_step(a5)
- rts
- eff1E:
- move.b d0,s_release_delay(a5) ; set release delay
- rts
-
-
- effect_table:
- dc.l eff0 ,eff1 ,eff2 ,eff3 ,eff4 ,eff5 ,eff6 ,eff7
- dc.l eff8 ,eff9 ,effA ,effB ,effC ,effD ,effE ,effF
- dc.l eff10,eff11,eff12,eff13,eff14,eff15,eff16,eff17
- dc.l eff18,eff19,eff1A,eff1B,eff1C,eff1D,eff1E,eff0
-
- play_speed:
- dc.b speed
- even
- safe_zero:
- blk.b 16,0
-
- freq_table:
- dc.w 0000,6848,6464,6096,5760,5424,5120,4832,4560,4304,4064,3840
- dc.w 3616,3424,3232,3048,2880,2712,2560,2416,2280,2152,2032,1920
- dc.w 1808,1712,1616,1524,1440,1356,1280,1208,1140,1076,0960,0904
- dc.w 0856,0808,0762,0720,0678,0640,0604,0570,0538,0508,0480,0452
- dc.w 0428,0404,0381,0360,0339,0320,0302,0285,0269,0254,0240,0226
- dc.w 0214,0202,0190,0180,0170,0160,0151,0143,0135,0127,0120,0113
- dc.w 0113,0113,0113,0113,0113,0113,0113,0113,0113,0113,0113,0113
-
- channel1:
- dc.l $dff0a0 ; hardware pointer
- dc.w $8001 ; DMA value
- dc.l 0 ; instrument pointer
- dc.w 0 ; frequency
- dc.l 0 ; sound table pointer
- dc.b 0 ; sound table counter
- dc.b 0 ; sound table delay
- dc.l 0 ; track pointer
- dc.w 0 ; track counter
- dc.l 0 ; block pointer
- dc.l 0 ; block counter
- dc.b 0 ; vibrator wait
- dc.b 0 ; vib length
- dc.b 0 ; vib position
- dc.b 0 ; vib length + & - (compare)
- dc.w 0 ; vib add freq
- dc.w 0 ; old freq for portamento
- dc.b 0 ; freq_dat
- dc.b 0 ; actual volume
- dc.b 0 ; attack delay
- dc.b 0 ; decay delay
- dc.w 0 ; sustain
- dc.b 0 ; release delay
- dc.b 1 ; play speed
- dc.w 0 ; bendrate freq
- dc.b 0 ; transpose
- dc.b 0 ; status
- dc.b 0 ; arpeggio counter
- dc.b 0 ; arpeggio data
- dc.b 0 ; arpeggio on/off
- dc.b 0 ; effect number
- dc.b 0 ; effect data
- even
-
- channel2:
- blk.b channel2-channel1,0
- channel3:
- blk.b channel2-channel1,0
- channel4:
- blk.b channel2-channel1,0
-
- track1:
- dc.l 0
- track2:
- dc.l 0
- track3:
- dc.l 0
- track4:
- dc.l 0
- blocks:
- dc.l 0
-
- snd_table:
- blk.l 20,0
-
- ;************************
- newcopper:
- dc.l $01200007,$01228000,$01240007,$01268000
- dc.l $01280007,$012a8000,$012c0007,$012e8000
- dc.l $01300007,$01328000,$01340007,$01368000
- dc.l $01380007,$013a8000,$013c0007,$013e8000
- dc.l $008e1f78,$00901cc1
- dc.l $00920028,$009400d8
- dc.l $0108000a
- dc.l $010a0000
- shifter:
- dc.l $01020000
- dc.l $01040040
- dc.l $01800000,$01820000,$0184000b,$0186022b
- dc.l $0188034c,$018a056d,$018c088d,$018e0aae
- dc.l $01900000,$01920999,$01940666,$01960444
- dc.l $01005600
- logopl:
- dc.l $00e00000,$00e20000
- dc.l $00e80000,$00ea0000
- dc.l $00f00000,$00f20000
- dc.l $00e40007,$00e68000
- dc.l $00ec0007,$00ee8000
- dc.l $6009fffe
- lettercop:
- dc.l $00e40000,$00e60000
- dc.l $00ec0000,$00ee0000
- dc.l $ff09fffe
- dc.l $00e40007,$00e68000
- dc.l $00ec0007,$00ee8000
- dc.l $fffffffe
-
- oldcopper:
- dc.l 0
- even
- gfxname: dc.b "graphics.library",0
- even
- gfxbase:
- dc.l 0
- even
- ;ONLY USE THIS CHARS...
- ;ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,'!?()-/abcdefghijk+%:<>
- ;a = BLOK
- ;j = LETTER
- ;k = PHONE
- ;<> = WINGS !!!
- ;USE AS MANY SCREENS AS YOU WANT... BEWARE... EACH LINE HAS 40 CHARS
- ;EACH SCREEN HAS 9 LINES !!!!!!!!!
-
- text:
- dc.b " biiiiiiiiiiiih "
- dc.b " c < ANGELS > g "
- dc.b " deeeeeeeeeeeef "
- dc.b " "
- dc.b " PRESENTS "
- dc.b " ANOTHER COOL "
- dc.b " "
- dc.b " CRACK! "
- dc.b " "
-
- dc.b " k CALL OUR BBS'S k "
- dc.b "--------------------"
- dc.b " "
- dc.b " JUST PUT "
- dc.b " THE BBS "
- dc.b " NUMBERS "
- dc.b " IN HERE !"
- dc.b " "
- dc.b " "
-
- dc.b " j OR WRITE TO j "
- dc.b " "
- dc.b "P.O.BOX 10, OBERCORN"
- dc.b " LUXEMBURG "
- dc.b " "
- dc.b " P.O.BOX 31, 9910 "
- dc.b "MARIAKERKE, BELGIUM "
- dc.b " "
- dc.b " "
-
- dc.b " TRASH CODING BY "
- dc.b " "
- dc.b " "
- dc.b " < VINNY > "
- dc.b " "
- dc.b " "
- dc.b "GREETZ TO ALL ANGELS"
- dc.b " MEMBERS. "
- dc.b " "
-
- dc.b " "
- dc.b " INTRO DONE BY "
- dc.b " "
- dc.b " "
- dc.b " ZAK'N VINNY "
- dc.b " "
- dc.b " "
- dc.b " "
- dc.b " < THE END > "
- blk.b 180,$ff
- even
-
- letters:
- dc.b "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,'!?()-/abcdefghijk"
- dc.b "+%:<> "
- even
-
- VINNY:
- dc.l $54484953,$20434f4f,$4c20494e,$54524f20
- dc.l $57415320,$434f4445,$44204259,$2056494e
- dc.l $4e592e2e,$2e205448,$45205649,$4e2d4d41
- dc.l $4e2e2e2e,$20475245,$45545a20,$544f2041
- dc.l $4c4c204f,$54484552,$204d454d,$42455253
- dc.l $20212121
-
- adds:
- dc.w $0000,$0002,$0004,$0006,$0008,$000a,$000c,$000e
- dc.w $0010,$0012,$0014,$0016,$0018,$001a,$001c,$001e,$0020
- dc.w $0220,$0222,$0224,$0226,$0228,$022a,$022c,$022e
- dc.w $0230,$0232,$0234,$0236,$0238,$023a,$023c,$023e,$0240
- dc.w $0440,$0442,$0444,$0446,$0448,$044a,$044c,$044e
- dc.w $0450,$0452,$0454,$0456,$0458,$045a,$045c,$045e,$0460
- dc.w $0660,$0662,$0664,$0666,$0668,$066a,$066c,$066e
- dc.w $0670,$0672,$0674,$0676,$0678
- even
-
- addspr:
- dc.w 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38
- dc.w 736,738,740,742,744,746,748,750,752,754,756,758,760,762
- dc.w 764,766,768,770,772,774
- dc.w $5c0,$5c2,$5c4,$5c6,$5c8,$5ca,$5cc,$5ce,$5d0,$5d2
- dc.w $5d4,$5d6,$5d8,$5da,$5dc,$5de,$5e0,$5e2,$5e4,$5e6
- dc.w $8a0,$8a2,$8a4,$8a6,$8a8,$8aa,$8ac,$8ae,$8b0,$8b2
- dc.w $8b4,$8b6,$8b8,$8ba,$8bc,$8be,$8c0,$8c2,$8c4,$8c6
- dc.w $b80,$b82,$b84,$b86,$b88,$b8a,$b8c,$b8e,$b90,$b92
- dc.w $b94,$b96,$b98,$b9a,$b9c,$b9e,$ba0,$ba2,$ba4,$ba6
- dc.w $e60,$e62,$e64,$e66,$e68,$e6a,$e6c,$e6e,$e70,$e72
- dc.w $e74,$e76,$e78,$e7a,$e7c,$e7e,$e80,$e82,$e84,$e86
- dc.w $1140,$1142,$1144,$1146,$1148,$114a,$114c,$114e,$1150,$1152
- dc.w $1154,$1156,$1158,$115a,$115c,$115e,$1160,$1162,$1164,$1166
- dc.w $1420,$1422,$1424,$1426,$1428,$142a,$142c,$142e,$1430,$1432
- dc.w $1434,$1436,$1438,$143a,$143c,$143e,$1440,$1442,$1444,$1446
- dc.w $1700,$1702,$1704,$1706,$1708,$170a,$170c,$170e,$1710,$1712
- dc.w $1714,$1716,$1718,$171a,$171c,$171e,$1720,$1722,$1724,$1726
- sprcount:
- dc.w 0
-
- plaats:
- dc.w 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
- dc.w 20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39
- dc.w 40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59
- dc.w 60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79
- dc.w 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99
- dc.w 100,101,102,103,104,105,106,107,108,109,110,111,112,113
- dc.w 114,115,116,117,118,119
- dc.w 120,121,122,123,124,125,126,127,128,129,130,131,132,133
- dc.w 134,135,136,137,138,139
- dc.w 140,141,142,143,144,145,146,147,148,149,150,151,152,153
- dc.w 154,155,156,157,158,159
- dc.w 160,161,162,163,164,165,166,167,168,169,170,171,172,173
- dc.w 174,175,176,177,178,179
-
- plaats2:
- dc.w 0
- dc.w 20,1
- dc.w 40,21,2
- dc.w 60,41,22,3
- dc.w 80,61,42,23,4
- dc.w 100,81,62,43,24,5
- dc.w 120,101,82,63,44,25,6
- dc.w 140,121,102,83,64,45,26,7
- dc.w 160,141,122,103,84,65,46,27,8
- dc.w 161,142,123,104,85,66,47,28,9
- dc.w 162,143,124,105,86,67,48,29,10
- dc.w 163,144,125,106,87,68,49,30,11
- dc.w 164,145,126,107,88,69,50,31,12
- dc.w 165,146,127,108,89,70,51,32,13
- dc.w 166,147,128,109,90,71,52,33,14
- dc.w 167,148,129,110,91,72,53,34,15
- dc.w 168,149,130,111,92,73,54,35,16
- dc.w 169,150,131,112,93,74,55,36,17
- dc.w 170,151,132,113,94,75,56,37,18
- dc.w 171,152,133,114,95,76,57,38,19
- dc.w 172,153,134,115,96,77,58,39
- dc.w 173,154,135,116,97,78,59
- dc.w 174,155,136,117,98,79
- dc.w 175,156,137,118,99
- dc.w 176,157,138,119
- dc.w 177,158,139
- dc.w 178,159
- dc.w 179
-
-
- plaats3:
- dc.w 90,89,69,70,71,91,111,110,109,108,88,68,48,49,50,51,52
- dc.w 72,92,112,132,131,130,129,128,127,107,87,67,47,27
- dc.w 28,29,30,31,32,33,53,73,93,113,133,153,152,151,150
- dc.w 149,148,147,146,126,106,86,66,46,26,6,7,8,9,10,11,12,13,14
- dc.w 34,54,74,94,114,134,154,174,173,172,171,170,169,168,167
- dc.w 166,165,145,125,105,85,65,45,25,5
- dc.w 15,35,55,75,95,115,135,155,175
- dc.w 164,144,124,104,84,64,44,24,4
- dc.w 16,36,56,76,96,116,136,156,176
- dc.w 163,143,123,103,83,63,43,23,3
- dc.w 17,37,57,77,97,117,137,157,177
- dc.w 162,142,122,102,82,62,42,22,2
- dc.w 18,38,58,78,98,118,138,158,178
- dc.w 161,141,121,101,81,61,41,21,1
- dc.w 19,39,59,79,99,119,139,159,179
- dc.w 160,140,120,100,80,60,40,20,0
-
- plaats4:
- dc.w 179,0,178,1,177,2,176,3,175,4,174,5,173,6,172,7,171,8,170,9
- dc.w 169,10,168,11,167,12,166,13,165,14,164,15,163,16,162,17,161
- dc.w 18,160,19
- dc.w 140,39,141,38,142,37,143,36,144,35,145,34,146,33,147,32
- dc.w 148,31,149,30,150,29,151,28,152,27,153,26,154,25,155,24
- dc.w 156,23,157,22,158,21,159,20
- dc.w 139,40,138,41,137,42,136,43,135,44,134,45,133,46,132,47,131
- dc.w 48,130,49,129,50,128,51,127,52,126,53,125,54,124,55,123,56
- dc.w 122,57,121,58,120,59
- dc.w 100,79,101,78,102,77,103,76,104,75,105,74,106,73,107,72,108
- dc.w 71,109,70,110,69,111,68,112,67,113,66,114,65,115,64,116,63
- dc.w 117,62,118,61,119,60
- dc.w 99,80,98,81,97,82,96,83,95,84,94,85,93,86,92,87,91,88,90,89
-
- plaats5:
- dc.w 0,161,20,141,40,121,60,101,80,81,100,61,120,41,140,21,160,1
- dc.w 2,163,22,143,42,123,62,103,82,83,102,63,122,43,142,23,162,3
- dc.w 4,165,24,145,44,125,64,105,84,85,104,65,124,45,144,25,164,5
- dc.w 6,167,26,147,46,127,66,107,86,87,106,67,126,47,146,27,166,7
- dc.w 8,169,28,149,48,129,68,109,88,89,108,69,128,49,148,29,168,9
- dc.w 10,171,30,151,50,131,70,111,90,91,110,71,130,51,150,31,170,11
- dc.w 12,173,32,153,52,133,72,113,92,93,112,73,132,53,152,33,172,13
- dc.w 14,175,34,155,54,135,74,115,94,95,114,75,134,55,154,35,174,15
- dc.w 16,177,36,157,56,137,76,117,96,97,116,77,136,57,156,37,176,17
- dc.w 18,179,38,159,58,139,78,119,98,99,118,79,138,59,158,39,178,19
-
- plaats6:
- dc.w 2,22,42,41,40,20,0,1,21
- dc.w 5,25,45,44,43,23,3,4,24
- dc.w 8,28,48,47,46,26,6,7,27
- dc.w 11,31,51,50,49,29,9,10,30
- dc.w 14,34,54,53,52,32,12,13,33
- dc.w 17,37,57,56,55,35,15,16,36
- dc.w 19,39,59,58,38,18
- dc.w 62,82,102,101,100,80,60,61,81
- dc.w 65,85,105,104,103,83,63,64,84
- dc.w 68,88,108,107,106,86,66,67,87
- dc.w 71,91,111,110,109,89,69,70,90
- dc.w 74,94,114,113,112,92,72,73,93
- dc.w 77,97,117,116,115,95,75,76,96
- dc.w 79,99,119,118,98,78
- dc.w 122,142,162,161,160,140,120,121,141
- dc.w 125,145,165,164,163,143,123,124,144
- dc.w 128,148,168,167,166,146,126,127,147
- dc.w 131,151,171,170,169,149,129,130,150
- dc.w 134,154,174,173,172,152,132,133,153
- dc.w 137,157,177,176,175,155,135,136,156
- dc.w 139,159,179,178,158,138
-
-
- plaats7:
- dc.w 92,46,124,59,136,150,29,1,101,15,55,6,107,99,153,165,23
- dc.w 60,12,114,49,85,97,128,160,21,52,148,17,179,175,63,11,110
- dc.w 35,142,58,152,169,4,156,74,103,31,89,162,67,119,10,112,71
- dc.w 22,123,108,33,98,154,131,82,0,27,146,95,149,64,26,113,177
- dc.w 104,140,116,76,7,66,100,61,115,48,126,134,139,172,143,42
- dc.w 19,30,129,138,44,147,50,121,133,37,25,122,159,166,24,16,2
- dc.w 158,120,88,94,79,170,163,86,9,111,34,20,174,81,39,28,145
- dc.w 70,62,105,38,32,155,91,144,40,161,171,168,83,73,118,53
- dc.w 14,45,137,57,141,102,36,8,173,65,178,3,18,78,106,5,132,164
- dc.w 56,127,77,157,41,167,54,68,135,80,43,96,84,13,125,117,47
- dc.w 75,87,51,151,109,93,69,72,90,130,176
-
- keeper:
- dc.l 0
- klaar:
- dc.l 1
- verander:
- dc.l 1
- test:
- dc.b 1
- even
- blk.b 100,0
- kloot:
- dc.w 0
- checkg:
- dc.b 0
- even
- keeper2:
- dc.l 0
- keeper3:
- dc.l 0
- keeppos:
- dc.l 0
- keepcount:
- dc.w 0
- uit:
- dc.w 0
- scrollcounter:
- dc.b 0
- scrolladds:
- dc.b 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22
- dc.b 23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
- dc.b 42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60
- dc.b 61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79
- dc.b 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98
- dc.b 99,100,101,102,103,104,105,106,107,108,109,110,111,112
- dc.b 113,114
- scrollsubs:
- dc.b 112,111,110,109,108,107,106,105,104,103,102,101,100,99,98
- dc.b 97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79
- dc.b 78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60
- dc.b 59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41
- dc.b 40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22
- dc.b 21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
- lamer:
- dc.b 3
- even
- font:
- blk.b 4352,0
- angels:
- blk.b 4704,0
- data:
- blk.b 9412,0
- b:
-